package com.xmy.cultivate.entity.response;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xmy.cultivate.entity.RecordCourse;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class MathChaPlan implements Serializable {
    private static final long serialVersionUID = 1L;


    @TableId(type = IdType.NONE)
    private Long id;


    @ApiModelProperty("校区id")
    private Long schoolId;

    @ApiModelProperty("年份")
    private Integer yearPart;


    @ApiModelProperty("季度")
    private Integer quarterNum;


    @ApiModelProperty("学员id")
    private Long studentId;

    @ApiModelProperty("年级")
    private Integer yearClassId;

    @ApiModelProperty("版本")
    private Long courseVersionId;

    @ApiModelProperty("科目")
    private Long subjectsId;

    private Integer taskCategoryId;


    @ApiModelProperty("备注")
    private String remark;


    @ApiModelProperty("是否删除，0正常，1删除")
    @TableLogic(value = "0", delval = "1")
    @TableField(select = false)
    private Integer deleted;


    @ApiModelProperty("添加时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;

    @ApiModelProperty("通关时间")
    private LocalDateTime passDateTime;

    @ApiModelProperty("应通关-正确题数")
    private Float rightNum;

    @ApiModelProperty("应通关-修正题数")
    private Float amendNum;

    @ApiModelProperty("课次-另做总人数返回给账务的记录")
    private Integer lessonNum;

    @ApiModelProperty("应通关")
    private Float lowestShutnum;

    @ApiModelProperty("上课老师")
    private Long teacherId;

    @ApiModelProperty("班级id")
    private Long gradeId;

    @ApiModelProperty("班型")
    private Long classTypeId;

    @TableField(exist = false)
    private String studentName;

    @TableField(exist = false)
    private String gradeName;

    private String classTypeName;

    private String teacherName;

    private String schoolName;

    private Long createdId;

    private Integer showPassNum;
    private Integer yetPassNum;
    private Integer notPassNum;
    private Integer datePassNum;

    private Integer lowestShutnumAll;//应通关总题数
    private Integer rightNumAll;//正确总题数
    private Integer amendNumAll;//修正总题数
    private Integer errorNumAll;//错误总题数
    private Integer rightNumDate;//正确数，按日期查询的

    private Integer passRade;

    private Integer brushCount;

    private Integer notBrushNum;

    private Integer againBrushNum;

    private Integer storeCount;

    private Integer drawUpCount;

    @ApiModelProperty("未通关课次")
    @TableField(exist = false)
    private String lessonNumNot;

    @ApiModelProperty("课次结，查询用")
    @TableField(exist = false)
    private Integer lessonNumStart;

    @ApiModelProperty("0老生‘1新生")
    @TableField(exist = false)
    private String include;

    @TableField(exist = false)
    private Integer passType;
    @TableField(exist = false)
    private String passDateStart;
    @TableField(exist = false)
    private String passDateEnd;

    /**
     * 到课率
     */
    @TableField(exist = false)
    private List<ArrivalRate> arrivalRateList;

    @TableField(exist = false)
    private Long schoolPid;

    @TableField(exist = false)
    private Integer allShutNum;

    @TableField(exist = false)
    private Integer planShutNumPass;

    @TableField(exist = false)
    private Integer newNumAll;

    @TableField(exist = false)
    private List<MathChaPlan> childRateList;

    @TableField(exist = false)
    private String teamName;

    @TableField(exist = false)
    private Long teamPid;

    @TableField(exist = false)
    private Long teamId;

    @TableField(exist = false)
    private String linkmanPhone;

    @ApiModelProperty("完成人数")
    @TableField(exist = false)
    private Integer yetFinishCount;

    @ApiModelProperty("日期范围内完成人数")
    @TableField(exist = false)
    private Integer dateYetFinishCount;

    @ApiModelProperty("应复刷人数")
    @TableField(exist = false)
    private Integer rebrushCount;

    @ApiModelProperty("已复刷人数")
    @TableField(exist = false)
    private Integer yetRebrushCount;

    @ApiModelProperty("日期范围内已复刷人数")
    @TableField(exist = false)
    private Integer dateYetRebrushCount;

    @ApiModelProperty("普通总人数")
    @TableField(exist = false)
    private Integer ordinaryCount;

    @ApiModelProperty("进步总人数")
    @TableField(exist = false)
    private Integer progressCount;

    @ApiModelProperty("优秀总人数")
    @TableField(exist = false)
    private Integer excellentCount;

    @ApiModelProperty("学霸总人数")
    @TableField(exist = false)
    private Integer apexCount;

    @ApiModelProperty("普通人数")
    @TableField(exist = false)
    private Integer ordinaryNum;

    @ApiModelProperty("进步人数")
    @TableField(exist = false)
    private Integer progressNum;

    @ApiModelProperty("优秀人数")
    @TableField(exist = false)
    private Integer excellentNum;

    @ApiModelProperty("学霸人数")
    @TableField(exist = false)
    private Integer apexNum;

    @ApiModelProperty("成绩数据1")
    @TableField(exist = false)
    private BigDecimal rightRade;

    @ApiModelProperty("成绩数据2")
    @TableField(exist = false)
    private BigDecimal rightRade2;

    @ApiModelProperty("应通关2")
    @TableField(exist = false)
    private Integer lowestShutnum2;

    @ApiModelProperty("正确2")
    @TableField(exist = false)
    private Integer rightNum2;

    @ApiModelProperty("错误2")
    @TableField(exist = false)
    private Integer amendNum2;

    @ApiModelProperty("需修正人数")
    @TableField(exist = false)
    private Integer againAmendNum;

    @ApiModelProperty("已完成2")
    @TableField(exist = false)
    private Integer yetFinishCount2;

    @ApiModelProperty("完成2")
    @TableField(exist = false)
    private Integer dateYetFinishCount2;

    @ApiModelProperty("需修正2")
    @TableField(exist = false)
    private Integer againAmendNum2;

    @ApiModelProperty("复刷通关率")
    @TableField(exist = false)
    private Integer againBrushNum2;

    @ApiModelProperty("复刷未通")
    @TableField(exist = false)
    private Integer notAgainBrushCount;

    @ApiModelProperty("复刷已通")
    @TableField(exist = false)
    private Integer yetAgainBrushCount;

    @ApiModelProperty("复刷今日已通关")
    @TableField(exist = false)
    private Integer dateYetAgainBrushCount;

    @ApiModelProperty("是否需要复刷")
    @TableField(exist = false)
    private Integer notBrush;

    @ApiModelProperty("在校时长")
    @TableField(exist = false)
    private String inSchoolTime;

    @ApiModelProperty("总积分")
    @TableField(exist = false)
    private Integer integralAll;

    @ApiModelProperty("日期范围内的积分")
    @TableField(exist = false)
    private Integer integralAllDate;

    private Integer integral;

    @ApiModelProperty("1正确率，2通关率，3费曼学习积分")
    @TableField(exist = false)
    private Integer moldType;

    @ApiModelProperty("数据")
    @TableField(exist = false)
    private String rate;

    @ApiModelProperty("数据平均值")
    @TableField(exist = false)
    private String rateAvg;

    @ApiModelProperty("英语上课时间")
    @TableField(exist = false)
    private String enSchoolTime;

    @ApiModelProperty("数学上课时间")
    @TableField(exist = false)
    private String maSchoolTime;

    @ApiModelProperty("物理上课时间")
    @TableField(exist = false)
    private String phSchoolTime;
}
